package com.leyou.order.web;

import com.leyou.order.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 虎哥
 */
@RestController
@RequestMapping("pay")
public class PayController {

    // RequestBody：把请求体中的数据  反序列化 为Java对象
    // ResponseBody：把返回值对象，序列号 为字节，写入响应体

    // 他们在数据处理时，会利用一个名为 HttpMessageConverter（消息转换器）来对数据做序列化和反序列化
    // 默认情况下，我们引入了jackson的依赖，因此能够处理java对象的消息转换器，只有一种，就是JSON消息转换器

    // 要想能用xml处理，我们需要引入xml解析器依赖

    // 按照顺序，逐个遍历消息转换器，找到可用的，就直接使用这个消息转换器即可。

    // 是否可用的判断依据是什么？
    // 1.这个消息转换器是否能处理这个对象类型
    // 2.用户需要的是什么类型的数据

    @Autowired
    private OrderService orderService;

    @PostMapping(value = "/wxpay/notify", produces = "application/xml")
    public Map<String,String> handleNotify(@RequestBody Map<String,String> data){
        orderService.handleNotify(data);

        Map<String,String> result = new HashMap<>();
        result.put("return_code", "SUCCESS");
        result.put("return_msg", "OK");
        return result;
    }
}
